/********************************************************************************
 * Project Name		[JavaEE_Web]
 * File Name     	[Servlet01.java]
 * Creation Date 	[2015-01-01]
 * 
 * Copyright© ge.y.yang@gmail.com All Rights Reserved
 * 
 * Work hard, play harder, think big and keep fit
 ********************************************************************************/
package _notes.servlet;

/**
 * Servlet简介
 * 
 * @author 不落的太阳(Sean Yang aka ShortPeace)
 * @version 1.0
 * @since jdk 1.8
 * 
 */
public final class Servlet01 {

	public void servlet() {
		/**
		 * Servlet是sun公司提供的一门用于开发动态Web应用的技术<br/>
		 * 
		 * Servlet是用Java编写的服务器端程序, 其主要功能在于交互式地浏览和修改数据, 生成动态Web内容<br/>
		 * 狭义的Servlet是指Java语言实现的一个接口<br/>
		 * 广义的Servlet是指任何实现了这个Servlet接口的类<br/>
		 */
	}

	public void lifeCycle() {
		/**
		 * Servlet生命周期[相关方法均被Servlet容器调用]<br/>
		 * 
		 * 1. 客户端请求该Servlet<br/>
		 * 2. 加载Servlet类到内存<br/>
		 * 3. 构造器: 只被调用一次, 当第一次请求Servlet时, 创建Servlet实例时调用.[说明Servlet是单例的]<br/>
		 * 4. init()方法: 只被调用一次, 在Servlet实例创建后立即被调用, 用于初始化当前Servlet<br/>
		 * 5. service()方法: 被多次调用, 每次请求都会调用service()方法, 实际用于响应请求<br/>
		 * 6. destroy()方法: 只被调用一次, 在服务器关闭或在当前Servlet所在Web应用被卸载前调用,
		 * 用于释放当前Servlet所占用的资源<br/>
		 */
	}

	public void servletProcess() {
		/**
		 * Servlet的运行过程<br/>
		 * 
		 * 1. Web服务器首先检查是否已经装载并创建了该Servlet的实例对象, 如果是, 则直接执行4, 否则执行2<br/>
		 * 2. 装载并创建Servlet的一个实例对象<br/>
		 * 3. 调用Servlet实例对象的init()方法<br/>
		 * 4.
		 * 创建一个用于封装Http请求的HttpServletRequest对象和一个代表Http响应的HttpServletResponse对象,
		 * 然后调用Servlet的service()方法并将请求和响应对象作为参数传递进去<br/>
		 * 5. Web应用程序停止或重启动之前, Servlet引擎将卸载Servlet, 并在卸载之前调用destroy()方法<br/>
		 */
	}
}
